/*-----------------------------------------------------------------------
 /  PFF - Low level disk interface modlue include file    (C)ChaN, 2009
 /-----------------------------------------------------------------------*/

#ifndef _DISKIO

#include <stdint.h>

/* Status of Disk Functions */
typedef uint8_t DSTATUS;

/* Results of Disk Functions */
typedef enum {
	RES_OK = 0, /* 0: Function succeeded */
	RES_ERROR, /* 1: Disk error */
	RES_NOTRDY, /* 2: Not ready */
	RES_PARERR /* 3: Invalid parameter */
} DRESULT;

/*---------------------------------------*/
/* Prototypes for disk control functions */

DSTATUS disk_initialize(void);
DRESULT disk_readp(uint8_t*, uint32_t, uint16_t, uint16_t);
DRESULT disk_readp_nocopy(uint8_t** dest, uint32_t sector, uint16_t sofs, uint16_t count);
DRESULT disk_writep(const uint8_t*, uint32_t);

#define STA_NOINIT		0x01	/* Drive not initialized */
#define STA_NODISK		0x02	/* No medium in the drive */

/* Card type flags (CardType) */
#define CT_MMC				0x01	/* MMC ver 3 */
#define CT_SD1				0x02	/* SD ver 1 */
#define CT_SD2				0x04	/* SD ver 2 */
#define CT_SDC				(CT_SD1|CT_SD2)	/* SD */
#define CT_BLOCK			0x08	/* Block addressing */

#define _DISKIO
#endif
